package es.nadalgoyo.frikiquest.control.util;

import android.content.Context;
import es.nadalgoyo.frikiquest.CuestionTiempoActivity;
import es.nadalgoyo.frikiquest.R;
import es.nadalgoyo.frikiquest.control.listener.OnTimeOutListener;
import es.nadalgoyo.frikiquest.util.Util;
import es.sergionadal.mvc.dispatcher.exception.DispatcherException;
import es.sergionadal.mvc.multimedia.SoundPlayer;


public class ThreadTiempo extends Thread {
	private int tiempo;

	private boolean continuar = true;

	private SoundPlayer snd;

	private CuestionTiempoActivity activity;

	public ThreadTiempo(CuestionTiempoActivity activity, String str,
			int tiempo, Context context) {
		super(str);
		this.tiempo = tiempo;
		snd = new SoundPlayer(context, R.raw.alarma);
		this.activity = activity;

		this.activity.setOnTimeOutListener(new OnTimeOutListener() {

			@Override
			public void OnTimeOut() {
				try {
					ThreadTiempo.this.activity.reponseListener(false)
							.dispatch();
				} catch (DispatcherException e) {
					e.printStackTrace();
					Util.showErrorMensaje(ThreadTiempo.this.activity,
							e.getMessage(), true);
				}
			}
		});
	}

	public void run() {
		for (int segundos = tiempo; segundos >= 0; segundos--) {
			if (continuar) {
				try {
					Thread.sleep(1000);
					if (segundos == 5) {
						snd.play();
					}
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		if (continuar)
			activity.setTiempo(false);
	}

	public void stopTiempo() {
		continuar = false;
		if (snd !=null){
			snd.stop();
			snd.release();
		}
	}
}
